package com.ngmaster.apiserver.redis;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;

@Component
public class RedisClient {
	
	/**
	 * 池子
	 */
	@Autowired
	private JedisPool jedisPool;
	
	/**
	 * 设置
	 * @param key			键值
	 * @param value			值
	 * @throws Exception	异常
	 */
	public void set(String key, String value){
		Jedis jedis = null;
		try {
			jedis = jedisPool.getResource();
			jedis.set(key, value);
		}finally {
			if( jedis != null )
				jedis.close();
		}
	}
	
	/**
	 * 获取
	 * @param key			键值
	 * @return
	 * @throws Exception
	 */
	public String get(String key){
		Jedis jedis = null;
		try {
			jedis = jedisPool.getResource();
			return jedis.get(key);
		}finally {
			if( jedis != null )
				jedis.close();
		}
	}
	
	/**
	 * 键值是否存在
	 * @param key			键值
	 * @return
	 * @throws Exception
	 */
	public Boolean exists(String key){
		Jedis jedis = null;
		try {
			jedis = jedisPool.getResource();
			return jedis.exists(key);
		}finally {
			if( jedis != null )
				jedis.close();
		}
	}
	
	/**
	 * 设置hash类型的数值
	 * @param key
	 * @param field
	 * @param value
	 */
	public void hset(String key, String field, String value){
		Jedis jedis = null;
		try {
			jedis = jedisPool.getResource();
			jedis.hset(key, field, value);
		}finally {
			if( jedis != null )
				jedis.close();
		}
	}
	
	/**
	 * 获取hash类型的键值
	 * @param key
	 * @param field
	 * @return
	 */
	public String hget(String key, String field){
		Jedis jedis = null;
		try {
			jedis = jedisPool.getResource();
			return jedis.hget(key, field);
		}finally {
			if( jedis != null )
				jedis.close();
		}
	}
}
